From: Tim Deegan Date: Thu, 30 Jun 2011 09:26:54 +0000 (+0100) Subject: Nested p2m: clarify logic in p2m_get_nestedp2m() X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~10094 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22?a=commitdiff_plain;h=7fb0a22e68efd2c3df7567b128ea4a021b55b2dc;p=xen.git Nested p2m: clarify logic in p2m_get_nestedp2m() This just makes the behaviour of this function a bit more explicit. It may be that it also needs to be changed. :) Signed-off-by: Tim Deegan Acked-by: Christoph Egger --- diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c index 20763b09bb..a74dd37e77 100644 --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -1131,11 +1131,9 @@ p2m_get_nestedp2m(struct vcpu *v, uint64_t cr3) d = v->domain; nestedp2m_lock(d); - for (i = 0; i < MAX_NESTEDP2M; i++) { - p2m = d->arch.nested_p2m[i]; - if ((p2m->cr3 != cr3 && p2m->cr3 != CR3_EADDR) || (p2m != nv->nv_p2m)) - continue; - + p2m = nv->nv_p2m; + if ( p2m && (p2m->cr3 == cr3 || p2m->cr3 == CR3_EADDR) ) + { nv->nv_flushp2m = 0; p2m_getlru_nestedp2m(d, p2m); nv->nv_p2m = p2m;